package com.yytek.common.client.consts;

public class MqTopic {

    public static class NetTopic{
        public static final  String TOPIC_HEAD_SYS = "/sys";
        //设备属性上报 请求 响应
        public static final String PROPERTY_POST_FMT = "/sys/%s/%s/thing/property/post";
        public static final String PROPERTY_POST_REPLY_FMT = "/sys/%s/%s/thing/property/post/reply";

        //设备属性设置（同步） 请求 响应
        public static final String PROPERTY_SET_FMT = "/sys/%s/%s/thing/property/set";
        public static final String PROPERTY_SET_REPLY_FMT = "/sys/%s/%s/thing/property/set_reply";

        //设备获取属性期望值 请求 响应
        public static final String DESIRED_GET_FMT = "/sys/%s/%s/thing/property/desired/get";
        public static final String DESIRED_GET_REPLY_FMT = "/sys/%s/%s/thing/property/desired/get/reply";

        //清除属性期望值  请求 响应
        public static final String DESIRED_DEL_FMT = "/sys/%s/%s/thing/property/desired/delete";
        public static final String DESIRED_DEL_REPLY_FMT = "/sys/%s/%s/thing/property/desired/delete/reply";

        //设备属性获取  请求 响应
        public static final String PROPERTY_GET_FMT = "/sys/%s/%s/thing/property/get";
        public static final String PROPERTY_GET_REPLY_FMT = "/sys/%s/%s/thing/property/get_reply";

        //设备事件上报 请求 响应
        public static final String EVENT_POST_FMT = "/sys/%s/%s/thing/event/post";
        public static final String EVENT_POST_REPLY_FMT = "/sys/%s/%s/thing/event/post/reply";

        //设备服务调用 请求、响应
        public static final String SERVICE_INVOKE_FMT = "/sys/{productKey}/{deviceName}/thing/service/{identifier}/invoke";
        public static final String SERVICE_INVOKE_REPLY_FMT = "/sys/%s/%s/thing/service/%s/invoke_reply";

        //	子设备上线
        public static final String SUB_LOGIN_FMT = "/sys/%s/%s/thing/sub/login";
        public static final String SUB_LOGIN_REPLY_FMT = "/sys/%s/%s/thing/sub/login/reply";

        //子设备下线
        public static final String SUB_LOGOUT_FMT = "/sys/%s/%s/thing/sub/logout";
        public static final String SUB_LOGOUT_REPLY_FMT = "/sys/%s/%s/thing/sub/logout/reply";

        //批量上报属性和事件（网关上报或代理子设备上报）
        public static final String SUB_PROPERTY_POST_FMT = "/sys/%s/%s/thing/pack/post";
        public static final String SUB_PROPERTY_POST_REPLY_FMT = "/sys/%s/%s/thing/pack/post/reply";

        //子设备属性获取
        public static final String SUB_PROPERTY_GET_FMT = "/sys/%s/%s/thing/sub/property/get";
        public static final String SUB_PROPERTY_GET_REPLY_FMT = "/sys/%s/%s/thing/sub/property/get_reply";

        //子设备属性设置
        public static final String SUB_PROPERTY_SET_FMT = "/sys/%s/%s/thing/sub/property/set";
        public static final String SUB_PROPERTY_SET_REPLY_FMT = "/sys/%s/%s/thing/sub/property/set_reply";

        //历史属性和事件上报（网关上报或代理子设备上报）
        public static final String SUB_HISTORY_POST_FMT = "/sys/%s/%s/thing/history/post";
        public static final String SUB_HISTORY_POST_REPLY_FMT = "/sys/%s/%s/thing/history/post/reply";

        //子设备服务调用
        public static final String SUB_SERVICE_INVOKE_FMT = "/sys/{productKey}/{deviceName}/thing/sub/service/invoke";
        public static final String SUB_SERVICE_INVOKE_REPLY_FMT = "/sys/%s/%s/thing/sub/service/invoke_reply";

        //添加子设备
        public static final String SUB_TOPO_ADD_FMT = "/sys/%s/%s/thing/sub/topo/add";
        public static final String SUB_TOPO_ADD_REPLY_FMT = "/sys/%s/%s/thing/sub/topo/add/reply";

        //删除子设备
        public static final String SUB_TOPO_DELETE_FMT = "/sys/%s/%s/thing/sub/topo/delete";
        public static final String SUB_TOPO_DELETE_REPLY_FMT = "/sys/%s/%s/thing/sub/topo/delete/reply";

        //获取拓扑关系
        public static final String SUB_TOPO_GET_FMT = "/sys/%s/%s/thing/sub/topo/get";
        public static final String SUB_TOPO_GET_REPLY_FMT = "/sys/{productKey}/{deviceName}/thing/sub/topo/get/reply";
        public static final String SUB_TOPO_GET_RESULT_FMT = "/sys/%s/%s/thing/sub/topo/get/result";

        //通知网关拓扑关系变化
        public static final String SUB_TOPO_CHANGE_FMT = "/sys/%s/%s/thing/sub/topo/change";
        public static final String SUB_TOPO_CHANGE_REPLY_FMT = "/sys/%s/%s/thing/sub/topo/change_reply";

        //通知设备升级
        public static final String UPGRADE_SEND_FMT = "/sys/{productKey}/{deviceName}/thing/service/upgrade/invoke";
        public static final String UPGRADE_REPLY_FMT = "/sys/%s/%s/thing/service/upgrade/invoke_reply";
    }

}
